<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // Promise的拓展方法    => Promise实例使用
    // 用法 p.then()  p.catch()    p.finally()

    // debugger;
    // 异步操作 => 两秒后 改变Promise实例的状态 
    var p = new Promise(function (resolve, reject) {
        setTimeout(function () {
            // debugger;
            var num = 0.1;
            console.log(num);

            if (num >= 0.5) {  //大于0.5 变为已成功
                resolve("正面:不拖堂");
            } else {
                reject("反面:拖堂");
            }
        }, 1000);
    })
    console.log("p", p);

    // then catch的链式操作  => 成功就走then  失败走catch

    // p.then(function (arg) { // => p1
    //     console.log("已成功", arg);
    //     // bbbbbb;
    // }).catch(function (err) { // p1.catch() => p2
    //     console.log("已失败", err);
    // }).finally(function () { // p2.catch()
    //     console.log(11111);
    // })

    // 拆分理解
    // 异步操作 => p        =>  p1 => p2
    // 成功        p.then() =>  p1
    // 失败        p        =>  p1

    var p1 = p.then(function (arg) {
        console.log("已成功", arg);
    })
    console.log("p1", p1);

    var p2 = p1.catch(function (err) {
        console.log("已失败", err);
    })
    console.log("p2", p2);





</script>

</html>